<?php
namespace api\admin\controller;

use cmf\controller\RestBaseController;
use api\admin\model\ToiletFlowModel;
use api\admin\model\ToiletDeviceModel;
use api\admin\model\ToiletSensorModel;


class ToiletSumController extends RestBaseController
{

    public $mac;
    public $type = 0;  //0 --7天 1--最近30天 2-- 自定义月份 3 -- 年份
    public $DateTime = 0;

    public function __construct($value = '')
    {
        parent::__construct();
        //检测用户登录状态
        // $this->getUserId();
        //初始化
        $this->Init();
    }

    //初始化
    public function Init($value='')
    {

    	$param = $this->request->param();
        $this->mac = (!isset($param['mac']) || empty($param['mac'])) ? $this->error('请求错误!') : $param['mac'];
        $this->type = (!isset($param['type']) || empty($param['type'])) ? 0 : $param['type'];
        $this->DateTime = (!isset($param['date_time']) || empty($param['date_time'])) ? 0 : $param['date_time'];
        $this->DateTime = $this->type == 1 ? date('Y-m-d',time()) : $this->DateTime;
    }
    /**
     * [ToiletSum 获取当前MAC统计数据]
     * @Author   HUI
     * @DateTime 2019-01-14
     * @version  [version]
     * @param    [type]     $mac [description]
     */
    public function ToiletSum($mac = null)
    {
        //获取状态
        if ($this->type && !$this->DateTime) {
            $this->error('请求错误！');
        }
        $result['lineDate'] = $this->getLineDate();
		// 人流量
		$ToiletFlow = new ToiletFlowModel();
        $result['Details']['number'] = $ToiletFlow->getDetailsNumber($this->mac,$this->type,$this->DateTime,$result['lineDate']);
		// 比例
		$ToiletDevice = new ToiletDeviceModel();
		$proporTion = $ToiletDevice->DetailsProportion($this->mac,$this->type,$this->DateTime,$result['lineDate']);
        $result['Details']['proportion']['label'] = $proporTion['label'];
        $result['Details']['proportion']['num'] =  $proporTion['num'];;
        //传感器平均值
		$ToiletSensor = new ToiletSensorModel();
        $ToiletSensorDetails  = $ToiletSensor->DetailsOther($this->mac,$this->type,$this->DateTime,$result['lineDate']);
        $result['Details']['other']['H2S'] = $ToiletSensorDetails['H2S'];
        $result['Details']['other']['NH3'] = $ToiletSensorDetails['NH3'];
        $result['Details']['other']['humidity'] = $ToiletSensorDetails['humidity'];
        $result['Details']['other']['temperature'] = $ToiletSensorDetails['temperature'];
        return $this->success('获取成功',$result);
    }

    /**
     * [getLineDate 获取时间轴]
     * @Author   HUI
     * @DateTime 2019-01-14
     * @version  [version]
     * @param    string     $value [description]
     * @return   [type]            [description]
     */

    public function getLineDate()
    {
        switch ($this->type) {
            case 1:
                $result = $this->getWeekTime(strtotime($this->DateTime));
                break;
            case 2:
                $result = $this->getWeekTime($this->DateTime);
                break;
            case 3:
                for ($i = 1; $i <= 12; $i++) {
                    $result[] = $i;
                }
                break;
            default:
                $result = $this->getWeekTime();
                break;
        }

        return $result;
    }



    /**
     * [getWeekTime 获取最近7天得数据]
     * @Author   HUI
     * @DateTime 2018-11-13
     * @version  [version]
     * @param    string     $time [description]
     * @return   [type]           [description]
     */
    public function getWeekTime($time = '')
    {	
        $time = $time != '' ? $time : time();
        $day = $this->type ==1 ? 30 :7;
    	if ($this->type == 2) {
			$ToiletFlow = new ToiletFlowModel();
    		$month = $ToiletFlow->getMonth($time);
    		// print_r($month);exit();
    		$day = $month['allDay'];
    		$time = strtotime($month['end_time']);
    	}
        //具体月份的处理
        //组合数据
        $date = [];
        for ($i = 1; $i <= $day; $i++) {
            $date[] = date('m-d', strtotime('+' . $i - $day . ' days', $time));
        }
        return $date;

    }




}

// 暂定的统计字段为
// 1、人流量统计： 上周流量统计（1-7 图表）、月流量统计（1-30 图表，可以选择月份 ）、年度统计（图表，1月-当前月）
// 2、男女比例统计：上周比例（图表）、月比例（图表，可以选择月份）、年度统计（图表）
// 3、气体统计：会有多种气体字段，每个气体做一个套统计。比如氨气：上周流量统计（1-7 图表）、月流量统计（1-30 图表，可以选择月份 ）、年度统计（图表，1月-当前月）

// id:
// lineDateType:
//     0 最近七天,
//     1 最近30天 ,
//     2 月份,
//     3 年
// lineDate:
//     2018-01,
//     2018

// {
//     lineDate: ['1', '2', '01-22'],
//     lineData: {
//         number: [10, 11, 12], // 人流量
//         proportion: { // 比例
//             label:  ['男厕','女厕']
//             number: [300, 233]
//         },
//         other: {
//             oxygen: { // 氧气
//                 company: '°C',
//                 number:  [10, 11, 12]
//             },
//             ammonia: { // 氨气
//                 company: '°C',
//                 number:  [10, 11, 12]
//             }
//         }
//     }
// }
